Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Використання евристичної функції для створення гри.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2003
Тип роботи:
Методичні вказівки до лабораторної роботи
Предмет:
Системи штучного інтелекту

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Кафедра ЕОМ Використання евристичної функції для створення гри Методичні вказівки до лабораторної роботи № 2 з курсу: “Системи штучного інтелекту” для студентів Затверджено на засіданні кафедри “Електронних обчислювальних машин” Протокол № Від 2003 р. Львів 2003 Використання евристичної функції для створення гри. Методичні вказівки до лабораторної роботи № 2 з курсу: “Системи штучного інтелекту” для студентів , 16 с. Укладач: Ємець В.Ф., професор, д.т.н. Сокіл В.М., асистент Юрчак І.Ю, доцент, к.т.н. Відповідальний за випуск: Кремінь В.Т., ст. викладач кафедри ЕОМ Рецензенти: Березко Л.О., доцент кафедри ЕОМ, к.т.н. Каркульовський В.І., доцент кафедри АСУ, к.т.н. 1. Мета роботи Cтворення зразку евристичної функції, яка описує стан укладанки, що полягає у складанні в зростаючому порядку цифр від 1 до 8. Створений алгоритм має за мету розв’язання гри при мінімально можливій кількості кроків, а також розпізнавання станів, у яких гра не має розв’язку. Початковий стан гри встановлюється випадковим чином. Головними елементами евристичної функції є складові підрахунку відстаней вибраних елементів від їх попереднього місця. 2. Теоретичні відомості Алгоритм гри є простим і базується на 3 засадах Підраховане значення евристичної функції відбиває єдиний можливий крок, що залежить від розташування нульового елементу і для якого значення функції є мінімальним (нескінченне від біжучого значення функції) Не варто повторювати попередній крок, якщо він призводить до заплутування алгоритму, і відповідно, не скорочує кількість кроків Нульове значення евристичної функції означає, що даний стан гри є кінцевим станом (елементи є укладеними або їх укладання є неможливим) Стан гри описаний 9-елементною таблицею Tab[8] цілих цифр в полях пронумерованих від 0 до 8 Приймемо наступну послідовність алгоритму: Етап 1 Початковою метою гри є уставляння одиниці на першому місці (в таблиці це поле з номером 0). Відповідно, цей порядок повинен мати найбільший приоритет, тобто йому має відповідати складова, що має найбільшу вагу в моделі функції. Ось ця складова: wartosc+=1000000*abs(miejsce[1]%3-szukana%3); //розглядання нормованої метрики по горизонталі wartosc+=1000000*abs(miejsce[1]/3-szukana/3); //розглядання нормованої метрики по вертикалі Де значення змінної szukana в цей момент дорівнює 0. Найбільша вага цієї складової у зразку евристичної функції доводить, що цей елемент ніколи не буде пересунуто зі свого місця. На цьому етапі гри нульове поле прагне до нульового місця таблиці елементів wartosc+=abs(miejsce[0]%3-szukana%3); //розглядання нормованої метрики по горизонталі wartosc+=abs(miejsce[0]/3-szukana/3); //розглядання нормованої метрики по вертикалі Етап 2 Наступний крок полягає у встановленні 2 і 3 на свої місця. Очевидно евристична функція намагається встановити їх відповідно стану: Де х означає поле замін перед випадковим укладанням залишкових цифр 4,5,6,7,8 Цей етап описує наступний фрагмент коду: //відповідає за 2 wartosc+=100000*abs(miejsce[2]%3-(szukana+2)%3); //розглядання нормованої метрики по горизонталі wartosc+=100000*abs(miejsce[2]/3-(szukana+2)/3); //розглядання нормованої метрики по вертикалі //відповідає за 3 wartosc+=10000*abs(miejsce[3]%3-(szukana+5)%3); //розглядання нормованої метрики по горизонталі wartosc+=10000*abs(miejsce[3]/3-(szukana+5)/3); //розглядання нормованої метрики по вертикалі Елемент 2 має більшу вагу ніж 3, і його варто поставити на власну позицію першим. На цьому етапі нульове поле прагне до першого елементу таблиці. if (Tab[0]==1) szukana++; //до уставляння 2 i 3 у рядку wartosc+=abs(miejsce[0]%3-szukana%3); //розглядання нормованої метрики по горизонталі wartosc+=abs(miejsce[0]/3-szukana/3); //розглядання нормованої метрики по вертикалі тобто значення змінної szukana буде зараз 1. Зауважимо, що у момент гри п...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини